iT邦幫忙

2023 iThome 鐵人賽

DAY 5
1
Software Development

Google Cloud Platform 零基礎入門系列 第 5

GCP 零基礎入門 (5) - IaaS、PaaS、FaaS、SaaS 的差別

  • 分享至 

  • xImage
  •  

哈囉大家好,我是古古

上一篇文章有先簡短提到了 Google Cloud 中的運算服務有哪些,不過在開始介紹 Google Cloud 中的運算服務之前,大家需要先具備 IaaS、PaaS、FaaS、以及 SaaS 的概念

所以這一篇文章,就會先來介紹 IaaS、PaaS、FaaS、以及 SaaS 的差別

1. 什麼是 IaaS?


IaaS 是 Infrastructure as a Service 的簡寫,中文翻譯為「基礎結構即服務」,IaaS 的意思是指「你能夠使用這個服務來創建 VM (Virtual Machine, 虛擬機)」

所以假設有一個雲端服務是 IaaS,那就表示他可以讓我們在上面自由的創建 VM,然後我們可以在該 VM 中安裝喜歡的 Java 版本、或是安裝喜歡的 Python 版本,然後我們也可以在這個 VM 裡面自由的運行想運行的程式,完全不受到任何限制

所以只要是直接提供一台 VM 給你自由運用的服務,即是屬於 IaaS 的一種,也就是 Infrastructure as a Service

IaaS 的優點

  • 因為 IaaS 提供完整的 VM 存取權,所以靈活性非常高,想幹嘛就幹嘛

IaaS 的缺點

  • 因為雲端服務商只會提供一台 VM 給你,所以凡事都得自己來,上到安裝 Java 版本、下到網路防火牆設定,全部都得靠自己完成

2. 什麼是 PaaS?


PaaS 是 Platform as a Service 的簡寫,中文翻譯為「平台即服務」,而到了 PaaS 這裡之後,就沒有了 VM 的概念

假設有一個雲端服務是 PaaS,那麼 他只會要求你上傳你的程式碼 ,然後他就會像變魔法一樣,直接幫你把這個程式運行起來了,magic!

所以當你使用了 PaaS 的服務之後,你就再也碰不到 VM 層(或是非常難),雲端服務商會把你的程式運行在一個「容器 Container」裡面,你只要告訴他你要幾個容器就好,剩下的雲端服務商會全部包辦

因此 PaaS 也可以稱為是懶人部署法,你不需要像上面的 IaaS 一樣,自己去搞 VM 然後自己安裝 Java 版本,你要做的,就是寫好程式,上傳,然後剩下的雲端服務商會全部幫你搞定,世界和平!

PaaS 的優點

  • 只需要上傳程式碼即可運作,減低維運的人力和時間成本

PaaS 的缺點

  • 靈活度非常低,碰不到實際的 VM 層級,沒辦法直接連線到容器裡面做特別的設定
  • 通常會限制程式語言,只支援熱門的,太冷門的不支援
  • 貴(不過貴不是他的缺點,是我的🥹

小結:IaaS 和 PaaS 的區別

從上面的 IaaS 和 PaaS 的介紹,大概可以感覺得出來 IaaS 和 PaaS 是一個對立的關係

IaaS 就是直接丟一個最原始的 VM 給你,你愛蓋什麼就蓋什麼,有點像是給你一塊地你自己自由發揮

而 PaaS 則像是一棟蓋好的大樓,裡面的設施非常先進漂亮,你只要提著你的行李箱就可以入住,但缺點就是你不能隨便更動大樓裡面的管線,只能照著他們既定的規則走

3. 什麼是 FaaS?


FaaS 是 Function as a Service 的簡寫,中文翻譯為「函式即服務」或是「功能即服務」

相較於 IaaS 和 PaaS,FaaS 其實是近十年才被提出來的新概念,FaaS 雖然也是屬於 XaaS 的一員,但其實他和上面的 IaaS 和 PaaS 沒什麼關係

FaaS 的概念,是 「把程式當成方法來執行」,即是讓程式不用一直運行著,而是當有請求來時,就快速啟動這個程式,然後請求走的時候就 shutdown 這個程式,簡單的說就是不讓程式一直啟動著,而是有需要的時候才開啟他,這就是 FaaS 的概念

大家也可以想像一下,一般我們在寫後端程式的時候,通常就是把程式運行起來,然後這個程式就會一直運行著,等著去接收前端的請求,即使沒有前端的請求過來,這個程式仍舊會一直運行著

而 FaaS 即是想要提出一個新概念,就是只有當前端發請求過來的時候,才會去運行起這個後端程式去處理前端的請求,當請求執行完畢後,就關掉這個後端程式,不讓他在那邊空轉,把「程式」當成是一個「方法」來運行,即是 FaaS 的概念

也因為如此,FaaS 也得到另一個名詞的稱呼,即是 Serverless(無伺服器運算)

能夠被稱為 Serverless,是因為從定義上來說,我們是沒有長期運行一個 server 的,而是前端請求來才啟動這個 server,前端請求走了這個 server 也被關掉了,並沒有一台 server 是傻傻運行著在等著前端的請求,因此才稱為 Serverless(無伺服器)

所以 FaaS 和 Serverless,他們指的其實都是同一件事情,就是把程式當成方法一樣來使用,用完即丟

補充:我當初學到這邊的時候,有點不能接受 Serverless 的定義😂,因為他就是有運行 server 啊!只是時間很短我們看不見而已!!不過這邊的定義就是這樣,所以大家可以先接受就好,FaaS 就是 Serverless,Serverless 就是 FaaS,他們指的是同一件事情

FaaS 的優點

  • 只需要在使用時付費,不需付錢讓程式空轉

FaaS 的缺點

  • 程式功能要拆分的比較細
  • 和雲端服務綁很深,將來萬一要下雲會比較麻煩(一般自架機房沒有這東西可以用)

4. 什麼是 SaaS?


SaaS 是 Software as a Service 的簡寫,中文翻譯為「軟體即服務」

SaaS 其實就是泛指 Gmail、Google Drive 這種給一般大眾用的軟體,跟工程師沒有什麼特別的關係,通常只是在提到 IaaS、PaaS 時,會一起拿出來被介紹到

IaaS、PaaS、FaaS、SaaS 的統整和應用


總和上面的介紹,可以將 XaaS 們統整成下面這張圖片,其中虛線下方所表示的,就是實際的雲端服務應用,供大家參考

https://ithelp.ithome.com.tw/upload/images/20230919/20151036hbrwRwk4zs.png

總結


這篇文章分別介紹了 IaaS、PaaS、FaaS、以及 SaaS 的概念,並且也比較了這些服務的優缺點,讓大家對 XaaS 中的成員們有更多的認識

那麼從下一篇文章開始,我們就會回到 Google Cloud 的運算服務主題上,開始介紹 Google Cloud 中的 IaaS 運算服務:Compute Engine,那我們就下一篇文章見啦!

相關連結



上一篇
GCP 零基礎入門 (4) - Google Cloud 中的運算服務簡介
下一篇
GCP 零基礎入門 (6) - 運算服務 - Compute Engine
系列文
Google Cloud Platform 零基礎入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Will 保哥
iT邦新手 2 級 ‧ 2023-09-24 13:13:01

Function as a Service 是不是應該翻譯成「函式即服務」比較常見。

古古 iT邦新手 3 級 ‧ 2023-09-25 08:20:11 檢舉

感謝提醒!已補充

我要留言

立即登入留言